<?php
use think\facade\Env;

// +----------------------------------------------------------------------
// | 日志设置
// +----------------------------------------------------------------------
return [
    // 默认日志记录通道
    'default'      => Env::get('log.channel', 'file'),
    // 日志记录级别（达到级别才记录）
    // 日志的级别从低到高依次为： debug, info, notice, warning, error, critical, alert, emergency
    'level'        => ['warning','error','alert'],
    // 日志类型记录的通道 ['error'=>'email',...]
    'type_channel' => [],
    // 关闭全局日志写入
    'close'        => false,
    // 全局日志处理 支持闭包
    'processor'    => null,

    // 日志通道列表
    'channels'     => [
        'file' => [
            // 日志记录方式
            'type'           => 'File',
            // 日志保存目录
            'path'           => '',
            // 单文件日志写入，默认按天生成文件，true表示以后日志全部存在一个文件中，字符串表示日志文件名，不需填后缀
            'single'         => false,
            // 单日志文件大小，配合上面单文件写入
            //'file_size'   	=> 	1024*1024*10,
            // 独立日志级别，以下级别的日志单独做记录，设为true标识全部类型都各自单独记录
            'apart_level'    => ['error','sql'],
            // 最大日志文件数量，设置后将不会分日期存放，超过数量将自动删除最早的文件
            'max_files'      => 0,
            // 使用JSON格式记录
            'json'           => false,
            // 日志处理
            'processor'      => null,
            // 关闭通道日志写入
            'close'          => false,
            // 自定义时间显示格式
            'time_format'    => 'Y-m-d H:i:s',
            // 日志输出格式化
            'format'         => '[%s][%s] %s',
            // 是否实时写入
            'realtime_write' => false,
        ],
        'email'    =>    [
            'type'    =>    'email',
        ],
        'SocketLog'=>[
            'type' => 'SocketLog',
            'host' => 'lo.ppm.top', // 自己项目的服务器端域名或 IP 地址 （这里要和 chrome 插件中的监听主机保持一致）
            // 日志强制记录到配置的client_id
            'force_client_ids' => [],
            // 限制允许读取日志的client_id
            'allow_client_ids' => [],
        ]
        // 其它日志通道配置
    ],

];

// 记录日志信息到内存
// Log::record('测试日志信息，这是警告级别','notice'); 第二个参数可选
// Log::write('测试日志信息，这是警告级别，并且实时写入','notice');

// 关闭本次请求日志写入
// Log::close();

//快速记录
//Log::error('错误信息');
//Log::info('日志信息');
//Log::info('日志信息{user}', ['user' => '张三']);
//助手函数
//trace('错误信息', 'error');
//trace('日志信息', 'info');

//获取全部日志（内存中）
//$logs = Log::getLog();

//清空日志（内存中）
//Log::clear();

//日志通道选择
//Log::channel('email')->info('一条测试日志');
//Log::channel('file')->error('记录错误日志');

//获取/关闭/清除某个日志通道的日志
//$error = Log::getLog('file');
//Log::close('file');
//Log::clear('file');